#!/usr/bin/env bash
#
# Copyright 2011 Lloyd R. Prentice
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# usage zotonic-copysite [site_name] [source_server]
#

SITE=$1
SERVER=$2

if [ ! $SITE ]
then
	echo USAGE: $0 [site_name] [source_server] 1>&2
	echo USAGE: See ZotonicCommands.txt 1>&2
else
	if [ ! $SERVER ]
	then
		echo USAGE: $0 [site_name] [source_server] 1>&2
	else
		ssh $SSH_OPTIONS zotonic@$SERVER "$ZOTONIC_BIN/zotonic snapshot $SITE"
		rsync -ae "ssh $SSH_OPTIONS" zotonic@$SERVER:$SITES/$SITE/ \
				--include=files/archive \
				--include=files/backup \
				--include=files/snapshot \
				--include=files \
				--exclude=files/* \
				$SITES/$SITE

		PANIC_FILE=`tempfile`
		pg_dump zotonic_$SITE > $PANIC_FILE
		echo "To restore if this goes wrong: psql zotonic_$SITE < $PANIC_FILE"

		echo "\pset tuples_only on
		SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'" \
		  | psql zotonic_$SITE --quiet | xargs -i echo 'DROP TABLE {} CASCADE;' | psql zotonic_$SITE
		psql zotonic_$SITE < $SITES/$SITE/files/snapshot/zotonic_$SITE.sql
	fi
fi
